| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | AR | AS | AT | AU | AV | AW | AX | AY | AZ | BA | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 32 | FeatureMAP 32 x 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||
2 | ping pong bram | ! bram = simple bram | write a = ! write b | Delay Line | |||||||||||||||||||||||||||||||||||||||||||||||||
3 | idx | 0 | 1 | 2 | ... | n | |||||||||||||||||||||||||||||||||||||||||||||||
4 | case | 1 | case | 2 | ping pong bram | ➡️ | data | data | data | ... | data | ➡️ | pe | ➡️ | |||||||||||||||||||||||||||||||||||||||
5 | write a = true | b = false) | write a = true | b = false) | ➡️ | ➡️ | ➡️ | ... | ➡️ | ||||||||||||||||||||||||||||||||||||||||||||
6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | bram | 0 | bram | 1 | bram | 0 | bram | 1 | |||||||||||||||||||||||||||||||||||||||||||||
8 | addr | data | addr | 512 | addr | data | addr | 512 | |||||||||||||||||||||||||||||||||||||||||||||
9 | 0x00 | 512 | 0x00 | 512 | 0x00 | 512 | 0x00 | 512 | PE (Mac Unit) | ||||||||||||||||||||||||||||||||||||||||||||
10 | write | ➡️ | 0x01 | 512 | 0x01 | 512 | 0x01 | 512 | 0x01 | 512 | 32x32 | 32 | |||||||||||||||||||||||||||||||||||||||||
11 | 0x02 | 512 | 0x02 | 512 | 0x02 | 512 | write | ➡️ | 0x02 | 512 | int8 featureMAP | int8 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||
12 | 0x03 | 512 | 0x03 | 512 | 0x03 | 512 | 0x03 | 512 | x | X | ⬇️ | ||||||||||||||||||||||||||||||||||||||||||
13 | 0x04 | 512 | read | ➡️ | 0x04 | 512 | 0x04 | 512 | read | ➡️ | 0x04 | 512 | int8 Weight | int8 | ➡️ | int16 | ➡️ | int8 | |||||||||||||||||||||||||||||||||||
14 | read | ➡️ | 0x05 | 512 | 0x05 | 512 | write | ➡️ | 0x05 | 512 | 0x05 | 512 | ⬇️ | ↘️ | result int32 | ||||||||||||||||||||||||||||||||||||||
15 | 0x06 | 512 | 0x06 | 512 | 0x06 | 512 | 0x06 | 512 | = INT16 | int8 | int16 | + | d e l a y L i n e | ||||||||||||||||||||||||||||||||||||||||
16 | 0x07 | 512 | 0x07 | 512 | 0x07 | 512 | 0x07 | 512 | ⬇️ | ||||||||||||||||||||||||||||||||||||||||||||
17 | 0x08 | 512 | 0x08 | 512 | 0x08 | 512 | 0x08 | 512 | + result int32 | result int32 | |||||||||||||||||||||||||||||||||||||||||||
18 | 0x09 | 512 | 0x09 | 512 | 0x09 | 512 | 0x09 | 512 | = result int32 | ||||||||||||||||||||||||||||||||||||||||||||
19 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | Delay Line | ||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | rms norm inv sqrt | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ||||||||||||||||||||||||||||||||||||||||||||
23 | 16bit | 8bit | 32 Weight 32x1 | ➡️ | → | 0 | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | ||||||||||||||||||||||||||||||||
24 | rmsnorm_slope.mem | rmsnorm_inter.mem | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||||
25 | ADDR | Value | Addr | Value | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
26 | 0x0000 | 0000477A | 0x1000 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
27 | 0x0001 | 00004758 | 0x1001 | 04FA | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
28 | 0x0002 | 0000474D | 0x1002 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
29 | 0x0003 | 00004742 | 0x1003 | 04FA | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
30 | 0x0004 | 00004737 | 0x1004 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
31 | 0x0005 | 0000472C | 0x1005 | 04FA | ······ | ||||||||||||||||||||||||||||||||||||||||||||||||
32 | 0x0006 | 00004721 | 0x1006 | 10FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
33 | 0x0007 | 00004716 | 0x1007 | 04FA | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
34 | 0x0008 | 0000470B | 0x1008 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
35 | 0x0009 | 00004737 | 0x1009 | 04FA | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
36 | 0x0010 | 0000472C | 0x1010 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
37 | 0x0011 | 00004721 | 0x1011 | 04FA | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | PE | |||||||||||||||||||||||||||||||
38 | 0x0012 | 00004716 | 0x1012 | 00FF | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | |||||||||||||||||||||||||||||||||||||||||
39 | ➡️ | → | PE | → | PE | → | PE | → | PE | → | PE | → | → | PE | → | PE | → | 1024 | |||||||||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
43 | gelu LUT | ||||||||||||||||||||||||||||||||||||||||||||||||||||
44 | result ping pong bram | 0 | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | ||||||||||||||||||||||||||||||||||||||||||||
45 | gelu table | ||||||||||||||||||||||||||||||||||||||||||||||||||||
46 | addr | value | o_acc [0,0] 32bit | o_acc [0,1] 32bit | ... | o_acc [31,31] 32bit | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | |||||||||||||||||||||||||||||||||||||||
47 | 1 | 0x00 | |||||||||||||||||||||||||||||||||||||||||||||||||||
48 | gelu_table[x] | 2 | 0x01 | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | ||||||||||||||||||||||||||||||||||||||||||
49 | = | 3 | 0x01 | ⬇️ flatten | |||||||||||||||||||||||||||||||||||||||||||||||||
50 | output | int32 | 4 | 0x02 | ram | ⬅️ | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | |||||||||||||||||||||||||||||||||||||||
51 | 32768 | 5 | 0x02 | o_acc [0,0] | o_acc [0,1] | ... | |||||||||||||||||||||||||||||||||||||||||||||||
52 | 6 | 0x03 | 32bit length | 32bit length | ... | ······ | |||||||||||||||||||||||||||||||||||||||||||||||
53 | ... | ... | |||||||||||||||||||||||||||||||||||||||||||||||||||
54 | 32768 | 0xFF | ⬇️ cpu(ram)으로 보내기 | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | ||||||||||||||||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
56 | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | |||||||||||||||||||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
58 | soft | max | exp | unit | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | |||||||||||||||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
60 | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | O_acc | 1024 | |||||||||||||||||||||||||||||||||||||||||||||